package com.nd.qa.shareplate.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.nd.qa.shareplate.model.Project;
import com.nd.qa.shareplate.model.User;

public interface ProjectService {

	/**
	 * 创建新项目
	 * @return
	 */
	public HashMap<String,Object> insertProject(Project project) throws Exception;
	/**
	 * 删除项目
	 * @param projectId
	 * @return
	 */
	public HashMap<String,Object> deleteProjectById(Integer projectId) throws Exception;
	/**
	 * 修改项目
	 * @param project
	 */
	public void updateProject(Project project) throws Exception;
	/**
	 * 更新已有项目信息
	 * @param project
	 */
	public void saveProjectInfo(Project project) throws Exception;
	/**
	 * 查询项目信息
	 * @return
	 */
	public List<Map<String, Object>> queryPrjInfoByUserId(Integer userId) throws Exception;
	/**
	 * 查询项目类型
	 * @return
	 */
	public List<HashMap<String, Object>> queryProjectType() throws Exception;
	/**
	 * 查询测试类型
	 * @return
	 * @throws Exception
	 */
	public List<HashMap<String, Object>> queryTestType() throws Exception;
	/**
	 * 查询所有项目
	 * @return
	 */
	public List<HashMap<String, Object>> queryTotalProject(Project project) throws Exception;
	/**
	 * 查询已有的项目信息
	 * @param project
	 * @return
	 */
	public HashMap<String, Object> queryTheProject(Project project) throws Exception;
	/**
	 * 分页查询项目记录
	 * @param project
	 * @return
	 */
	public List<HashMap<String, Object>> queryLimitProject(HashMap<String, Object> paramMap) throws Exception;
	/**
	 * 查询可以测试的脚本项目
	 * @param project
	 * @return
	 * @throws Exception
	 */
	public List<HashMap<String, Object>> queryScriptsById(HashMap<String, Object> param) throws Exception;
	/**
	 * 查询所有非本用户的项目信息
	 * @param project
	 * @return
	 * @throws Exception
	 */
	public List<HashMap<String, Object>> queryOnlineProject(Project project) throws Exception;
	/**
	 * 查询项目信息
	 * @param project
	 * @return
	 */
	public HashMap<String, Object> queryApplyProject(HashMap<String, Object> map);
	/**
	 * 查询项目信息
	 */
	public Project queryProjectById(int projectId) throws Exception;
	/**
	 * 查询所有的注册用户信息
	 * @param project
	 * @return
	 */
	public List<User> queryTotalUserInfo(User user);
	/**
	 * 查询项目序列号
	 * @param param
	 * @return
	 */
	public Integer queryProjectSeqByName(String param);
}
